home *** CD-ROM | disk | FTP | other *** search
-
- .386p
-
- public getSndWork
- public isFast
- public modeSwitch
-
- cseg segment dword 'code'
- CGROUP group cseg
- assume cs:CGROUP,ds:CGROUP,ss:CGROUP,fs:CGROUP
-
- ROM_CSEG equ 110h
- SND_WORK equ 98h
-
- ; サウンドワークの取得
- ; unsigned char *getSndWork(void);
- ; [戻り値]サウンドワークへのポインタ
- ; [引数] なし
- getSndWork proc
- push fs
- push gs
- push edi
-
- push dword ptr ROM_CSEG ; fs=ROM_CSEG
- pop fs
- lgs edi,pword ptr fs:[SND_WORK]
- mov eax,edi
-
- pop edi
- pop gs
- pop fs
- ret
- getSndWork endp
-
- ; 動作モードの状態
- ; int isFast(void);
- ; [戻り値]0h:互換モード
- ; 1h:高速モード
- ; 80h:動作モードが存在しない
- ; [引数] なし
- isFast proc
- xor eax,eax
- mov ah,9
- int 0afh
- ret
- isFast endp
-
- ; 動作モードの切り換え
- ; void modeSwitch(int mode);
- ; [戻り値]なし
- ; [引数] mode 0:互換モード
- ; 1:高速モード
- modeSwitch proc
- #mode equ 8
-
- push ebp
- mov ebp,esp
-
- mov al,[ebp].#mode
- mov ah,8
- int 0afh
-
- mov esp,ebp
- pop ebp
- ret
- modeSwitch endp
-
- cseg ends
- end
-